/*
#include <iostream>

template<typename T>
class A
{
    friend T;
    A()
    {}

    ~A()
    {}
};

class B : virtual public A<B>
{
public:
    B()
    {}

    ~B()
    {}
};

class c : virtual public B
{
public:
    c()
    {}

    ~c()
    {}
};
*/

